\begin{problem}{Дерево}{tree.in}{tree.out}{1 секунда}{256 мегабайт}

Дано взвешенное дерево. Найти кратчайшее расстояние между заданными вершинами.

\InputFile

Первая строка входного файла содержит натуральное число $N \le 150\,000$ --- количество вершин в графе.
Вершины нумеруются целыми числами от 0 до $N-1$.
В следующих $N-1$ строках содержится по три числа $u$, $v$, $w$,
которые соответствуют ребру весом $w$, соединяющему вершины $u$ и $v$.
Веса --- целые числа от $0$ до $10^9$.
В следующей строке содержится натуральное число $M \le 75\,000$ --- количество запросов.
В следующих $M$ строках содержится по два числа $u$, $v$ --- номера вершин, расстояние между которыми необходимо вычислить.

\OutputFile

Для каждого запроса выведите на отдельной строке одно число --- искомое расстояние.
Гарантируется, что ответ помещается в знаковом 32-битном целом типе.

\Example

\begin{example}
\exmp{
3
1 0 1
2 0 1
9
0 0
0 1
0 2
1 0
1 1
1 2
2 0
2 1
2 2
}{
0
1
1
1
0
2
1
2
0
}%
\end{example}

\end{problem}
